package org.product.controller;

import com.google.gson.Gson;
import org.product.dao.ProductDao;
import org.product.factory.DaoFactory;
import org.product.util.GsonUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;


@WebServlet("/api/deleteProduct.do")
public class DeleteProductServlet extends BaseServlet {
    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        // 获取页面发送过来的商品ID -- null
        // 注意：get、post请求方式可以使用getParameter方法获取客户端的数据
        // 但是，如果是非get或post请求方式，则使用getReader方法获取客户端数据
        BufferedReader reader = req.getReader();  // IO
        String str = null ;
        String jsonParams = "" ;

        HttpSession session = req.getSession() ;
        System.out.println(session.getId());

        while((str=reader.readLine())!=null) {
            // 把读取的数据，串联起来
            jsonParams = jsonParams + str ;
        }

        // 格式1（URL参数字符串）：参数名=值
        // 格式2（JSON字符串）：{"参数名":"值"}  -> Gson - Map -> 值
        Map<String,String> map = GsonUtil.parseMap(jsonParams) ;
        String productId = map.get("productId") ;

        // 创建DAO对象，实现数据删除操作
        ProductDao productDao = DaoFactory.getProductDaoInstance(); ;
        int r = productDao.delete(productId) ;

        // 响应结果
        resp.setContentType("application/json;charset=utf-8");
        PrintWriter out = resp.getWriter() ;
        if(r==1) {
            out.print(new Gson().toJson(successJson("删除成功")));
        } else {
            out.print(new Gson().toJson(successJson("删除失败")));
        }

        // 关闭对象
        out.flush();
        out.close();
    }


}
